from seleniumbase import BaseCase


class GitHubTests(BaseCase):
    def test_github(self):
        # Selenium 可以触发 GitHub 的反自动化系统：
        # "你触发了滥用检测机制。"
        # "请稍等几分钟，然后再试一次。"
        # 为了避免这种自动化阻碍，我们采取了两个步骤：
        # 1. self.slow_click() 用于减慢 Selenium 操作。
        # 2. 浏览器的 User Agent 被修改以避免 Selenium-detection
        # 在无头模式下运行时。
        if self.headless:
            self.get_new_driver(
                agent="""Mozilla/5.0 """
                """AppleWebKit/537.36 (KHTML, like Gecko) """
                """Chrome/Version 96.0.4664.55 Safari/537.36"""
            )
        self.open("https://github.com/search?q=SeleniumBase")
        self.slow_click('a[href="/seleniumbase/SeleniumBase"]')
        self.click_if_visible('[data-action="click:signup-prompt#dismiss"]')
        self.assert_element("div.repository-content")
        self.assert_text("SeleniumBase", "h1")
        self.slow_click('a[title="seleniumbase"]')
        self.slow_click('a[title="fixtures"]')
        self.slow_click('a[title="base_case.py"]')
        self.assert_text("Code", "nav a.selected")
